/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package mattespill.gui;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import mattespill.Bruker;
import mattespill.Database;
import mattespill.Oversikt;

/**
 *
 * @author Axels
 */
public class GUILeggTilBruker extends JPanel {

    private Skjema s                    = new Skjema();
    Knappelytter k                      = new Knappelytter();
    private Knappepanel kp              = new Knappepanel(k);
    int brukerID;
    private Image bg                    = new ImageIcon("src/mattespill/gui/images/bakgrunn.png").getImage();
    public Color c                     = new Color(255,255,255, 150);
    private Color t                    = new Color(255,255,255, 0);
    private JPanel ltb                 = new JPanel();
    private Oversikt o;
    

    public GUILeggTilBruker(int brukerID, Oversikt o) {
        this.o = o;
        this.brukerID = o.getBruker().getBruker_id();
        setLayout(new BorderLayout());
        setPreferredSize(new Dimension(600,400));
        setLayout(new BorderLayout());
       
        setMinimumSize(new Dimension(768,512));
        setBackground(t);
        //ltb.setBorder(BorderFactory.createEmptyBorder(100,10,10,10));
        add(s, BorderLayout.CENTER);
        add(kp, BorderLayout.SOUTH);
        setBackground(t);
       
        
        
    }   

    private class Knappelytter implements ActionListener{
         public void actionPerformed(ActionEvent h){
            Knapp k = (Knapp)h.getSource();
            Component[] t = s.getComponents();
            
            Tekstboks navn  = (Tekstboks)t[0];
            Tekstboks bnavn = (Tekstboks)t[1];
            Tekstboks pw    = (Tekstboks)t[2];
            Tekstboks pw2   = (Tekstboks)t[3];
            System.out.println(navn.hentTekst() + bnavn.hentTekst() + pw.hentPw().toString());
              if(k.getText().equals("Legg til")){
                 if(pw.hentPw().equals(pw2.hentPw())){
                     if(o.leggTilBruker(navn.hentTekst(), bnavn.hentTekst(), pw.hentPw(), 0, brukerID)){
                         navn.setTekst("");
                         bnavn.setTekst("");
                         pw.setPassord("");
                         pw2.setPassord("");
                         JOptionPane.showMessageDialog(null, "Elev lagt til!");
                     }
                 }
              }
                 else if(k.getText().equals("Tilbake")){                    
                     GUIAdminpanel ltb = new GUIAdminpanel(o);
                     JPanel mainPanel = (JPanel)getParent();
                     mainPanel.removeAll(); // dette is the sub-panel
                     mainPanel.add(ltb);
                     mainPanel.repaint();
                     mainPanel.revalidate();
                     ltb.repaint();
                  
                 } 
                 else {
                         System.out.println("Passordene stemmer ikke overens");
                         System.out.println("Bruker ble ikke lagt til");
                 }                    

                }
             }

              

    }
    
       



class Tekstboks extends JPanel{

    JTextField      tf       = new JTextField();
    JPasswordField  pwf      = new JPasswordField();
    char[] spwf;
    String stf;
    JLabel          labl     = new JLabel();
    GridLayout      layout   = new GridLayout(0,2);
    String navn;
    String passord;

    public Tekstboks(String navn, boolean pw){
        setBackground(new Color(255,255,255, 0));
        this.navn = navn;
        if(pw){
               setLayout(layout);
               labl.setText(navn);
               add(labl);
               add(pwf);
            
        }else{
       setLayout(layout);
       labl.setText(navn);
       add(labl);
       add(tf);
        }

    }
    public String hentNavn(){
        return navn;
    }
    public String hentTekst(){
        stf = tf.getText();

        return stf;
    }
    public void setTekst(String tekst){
        tf.setText(tekst);
    }
    public void setPassord(String pass){
       pwf.setText(stf);
    }

    public String hentPw(){
       return convertPw(pwf.getPassword());
    }

    private String convertPw(char[] pw){
         passord = "";
        for(int i =0; i<pw.length; i++){
            this.passord += pw[i];
        }

        return passord;
    }



}

class Skjema extends JPanel{

    GridLayout  layout   = new GridLayout(7,2);

    private Tekstboks navn          = new Tekstboks("Navn:",            false);
    private Tekstboks brukernavn    = new Tekstboks("Brukernavn:",      false);
    private Tekstboks pw            = new Tekstboks("Passord:",         true);
    private Tekstboks bekreftpw     = new Tekstboks("Bekreft passord:", true);
    private Tekstboks rolle         = new Tekstboks("Rolle:",           false);
    private Tekstboks lagt_til_av   = new Tekstboks("Lagt til av:",     false);

   



    public Skjema(){
        
        setBorder(BorderFactory.createEmptyBorder(10,10,10,10));
        setBackground(new Color(255,255,255, 150));
        setLayout(layout);
        setPreferredSize(new Dimension(400,200));
        add(navn);
        add(brukernavn);
        add(pw);
        add(bekreftpw);
        rolle.setTekst(""+0);
    }
}

class Knappepanel extends JPanel{

    private Knapp     leggtil       = new Knapp("Legg til");
    private Knapp     tilbake       = new Knapp("Tilbake");

    public Knappepanel (ActionListener a) {
        setBackground(new Color(255,255,255, 150));
        leggtil.addActionListener(a);
        tilbake.addActionListener(a);
        this.setForeground(Color.yellow);
        add(leggtil);
        add(tilbake);
    }


}

class Knapp extends JButton{

    public Knapp(String tekst){
        this.setText(tekst);
        //setBorder(BorderFactory.createEmptyBorder(10,10,10,10));
    }

    public Knapp getKnapp(){
       return this;
    }
}
    
    
    


